キッシュちゃんの表情アニメーションをAvatars 3.0に時代に設定する
試した日:2022/6/15ごろ
筆者はこの時代のアバターをセットアップしたことがないので細部はわからない
Avatars 3.0の表情アニメーション設定の大雑把な手順
Avatars3.0では左手右手それぞれに別のアニメーションを設定することができます。
LeftHandレイヤーをクリックしてFistステートをクリックするとInspectorのMotionに
orion_face_smileというアニメーションが設定されていることがわかります。
左手のコントローラーでFist(グー)のポーズをつけたときにsmileアニメーションが実行されます。これがAvatars2.0のAnimationOverrideでアニメーションを設定していた部分と思ってもらってOKです。
サンプルの手の動きに連動するモーションのAnimatorControllerコピペして
https://gyazo.com/809250c48c7b9c5c37edc71c354b3f1c
https://gyazo.com/13076efae456b89f1be8dab4a107fabf
対応するAnimationがない場合はproxyのままにして差し支えないです
この通りにproxyを設定した
(が、proxyにも表情が設定されていた気がするので意図しない顔になる可能性があります
応急処置はproxyのコピーを作り、顔関連のシェイプキー指定を外すことです(略)
これは未実施。最終的に使い心地を調整するときにやる必要があるだろう
https://gyazo.com/0cc04fad806f572cc6626fd6b44d378f
これで、ハンドサインを行った際にAnimation clipを再生することができるようになった
気づくまで紆余曲折と混乱と迷走があった
基素.icon「モーション割り当てを左手だけにしたら表情が壊れた。顔も半分だけ変。なんで?」
基素.icon「Unityのデフォルトのvrc_AvatarV3HandLayer(デフォルトのproxyアニメーション&Write defaultなし)でも溶けた」
基素.icon「Unity....なんもわからん...」
キッシュちゃんの場合、以下の問題があった
これらに対応していく
Idleも含めたすべてのWrite Defaultsにチェックを入れます。
これをしないと手を離したときに表情が元に戻りません。
オンにするとバグがあるとの情報もありますが、アップロードしてみて特に困りませんでした。
どちらの方策でもいけるはずだが、問題2と問題1をごっちゃに考えていたので、方針1-1では問題2が解決しない!と思って方針2を無駄に試してしまった
1-2をした結果(1-1でも同じ結果になるはず)
https://gyazo.com/f0d7d812ea68c56dba28adbe01271cda
Idleからproxyのアニメーションをとっても変わらない
https://gyazo.com/a9b53901cf22177d557392d6a1a4d489
プレイヤーが操作をどうしたいのかによって対応が大きく変わる
それによってこんな対応がありうる
「左手は口だけ、右手は目だけを動かすと決めて干渉し合わないようにする」
「Right Handsレイヤーの一つ上に、右手表情表示中だけデフォルト顔アニメーションを出すレイヤーを置いておく」
「左右のハンドサインによる表情をひとつのレイヤーにまとめておく」
どちらかの手にだけ表情をつける
表情ですべてのパラメータを指定しておく(強制上書き)
有名アバターではどうなっているのかを確認するとよさそうだ
参考文献
VRCSDK > Examples3 > Animation > Controllers からvrc_AvatarV3HandsLayerをコピーして使う解説
参考にはしなかったが関連する記事
自動化ツールの使い方解説記事
最初にコピーしたvrc_AvatarV3HandsLayerを編集します
赤色 右と左で別々の表情を入れれます
青色 表情変えるのはここにアニメーションを入れるだけです
緑色 まばたきと表情変更が被らないようにtraking controlを追加し、緑線のように変更します
https://pbs.twimg.com/media/EgVRmS4VAAAwTBa.png
のスレッド
今回tracking controleは意識していなかったが(コピペしたので最初から設定されていた)、ここでマスクするんだな〜
Avatars 2.0→3.0移行記事
もし以前のversionのアバターを残しておきたい場合は、アップロードするアバターのBlueprintIDをDetachしてからアップロードしましょう。
--.icon
迷走の記録。整理したものが↑の記事なので読む必要はない
Left/Right hand両方にWrite Defaultを設定した
表情が戻ることが確認できた
困りごと
2. 目をつぶった顔のパターンが2つあり、両方のタイミングが重なると(?)奇妙な顔になってしまう
失敗1:Left handのOpenにWrite Defaultのチェックが漏れていた
左手を変更すると表情が崩れ、右手をOpen handにしなおすと上書きされて直るようになった
https://gyazo.com/42f004da919e6cf3004ec828783fd3c8
チェックをつけなおした
失敗2: IdleにWrite Defaultのチェックを入れ忘れた
両方の手を設定した場合にはうまくいくが、片方の手だけ形を変更させた場合にモーフ後に逆側の手の表情になってしまう
https://gyazo.com/a0f657debca65b9e0c2a3e2a643dfccf
左手と右手で優先度がありそう
必ずあとの方のアニメになるわけではない
左手と右手で順番を対象的に操作した場合でも、結果が違う
Idleにもチェックを入れた
Q. 左右の手で表情をつけた時、どの手の順番でどういう表情になるのかわからない
参考:Left handだけWrite Defaultをいれる→最終的に表情が(ぐちゃぐちゃな状態で)それ以上変わらなくなった
左手を開くと顔が溶ける
他にも組み合わせによっては顔が溶けるパターンがある
なぜそうなるのか理解できていない。だから解決できない
WriteDefaultではこれ以上解決できないようにおもえたので違う方法を調べた
追記:これは勘違い
参考になりそうな記事を読む
Write defaultsを使わないなら、元に戻すアニメーションを作る必要がある
キッシュちゃんにはない
左右の表情が変に混ざる原因はたぶんこれ
追記:Yes
対策は人の好みが出そう
「左手は口だけ、右手は目だけを動かすと決めて干渉し合わないようにする」
「Right Handsレイヤーの一つ上に、右手表情表示中だけデフォルト顔アニメーションを出すレイヤーを置いておく」
「左右のハンドサインによる表情をひとつのレイヤーにまとめておく」
といった対策も考えられる。
デフォ表情アニメをLeft Handのidleに入れるのをやめろ………!!!!!!!!!!!
初期表情に戻すアニメーションを作る
https://gyazo.com/924c5c2dd5d4cc7db96f1c93dc55faff
(余談)option_heart 1
https://gyazo.com/b6f95bf3ea2b9646358b9183a328ce95
こうした
https://gyazo.com/c6509df2856870dd077bc0245e7f6323 https://gyazo.com/cb007ae89e14fea3cd4dae787973501d
するとこうなる
https://gyazo.com/f0d7d812ea68c56dba28adbe01271cda
Idleからproxyのアニメーションをとっても変わらない
https://gyazo.com/a9b53901cf22177d557392d6a1a4d489
プレイヤーの両手や右手(動画で言うアバターの左手)をvictoryにしたとき、正常に表情は動く
しかし、左手victoryにすると別の表情がブレンドされているようにみえる
注意:VRChat内で鏡を見ているので、プレイヤーの左手は映像で言うアバターの右手のこと
もし右手のパラメータが後から上書きされているのだとすると、LeftHandのレイヤーを一番下にしたら挙動が変わるはずだ
やってみたが、かわらなかった
追記:多分Open hand扱いになっていて合成されてしまっている
右手と左手で別のポーズになるものがあった
追記:何を書いているのかわからない。組み合わせによっては正常にいくが(パラメーターが同じケース)、それ以外では別になる
ついてるアニメーションは一緒なので、対象になって欲しい
Right Handの重みを0にしてみる→期待した動作になった
わかった。Left Handの表情とRight Handの表情がBlendされてるんだ
作成したデフォルトはこうした
https://gyazo.com/cb007ae89e14fea3cd4dae787973501d
QuicheのVictoryは最低限のアニメーションのみが指定されている
https://gyazo.com/a61457c7b9b0a52ff18fc66daaada383
つまり、他のアニメーションがついたときに合成される
なぜならアニメーションを発現したときには、こういう順番でパラメータが適用されるから
https://gyazo.com/9dccaba7805f22cd1795373bba777099
どちらかの手にだけつけるとか、表情ですべてのパラメータを指定するとかの工夫が必要
有名アバターではどうなっているのかを確認するとよさそうだ